package com.ruoyi.recycle.domain;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 积分商品对象 integral_commodity
 *
 * @author Wubk
 * @date 2022-05-22
 */
@ApiModel("积分商品对象")
@Data
@NoArgsConstructor
public class IntegralCommodity implements Serializable {
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    @ApiModelProperty(name = "id", value = "积分商品id", dataType = "Long")
    private Long id;

    /** 商品名 */
    @Excel(name = "商品名")
    @ApiModelProperty(name = "commodityName", value = "商品名", dataType = "String")
    private String commodityName;

    /** 海报 */
    @Excel(name = "海报")
    @ApiModelProperty(name = "img",value = "海报",dataType = "String")
    private String poster;

    /** 积分 */
    @Excel(name = "积分")
    @ApiModelProperty(name = "integral",value = "积分",dataType = "Long")
    private Long integral;

    /** 积分兑换金额 */
    @Excel(name = "积分兑换金额")
    @ApiModelProperty(name = "integralMoney",value = "积分兑换金额",dataType = "BigDecimal")
    private BigDecimal integralMoney;

    /** 备注 */
    @Excel(name = "备注")
    @ApiModelProperty(name = "remark",value = "备注",dataType = "String")
    private String remark;

    /** 商品详情 */
    @Excel(name = "商品详情")
    @ApiModelProperty(name = "details",value = "商品详情",dataType = "String")
    private String details;

    /** 兑换方式(1纯积分，2积分+现金) */
    @Excel(name = "兑换方式(1纯积分，2积分+现金)")
    @ApiModelProperty(name = "exchangeType",value = "兑换方式(1纯积分，2积分+现金)",dataType = "String")
    private String exchangeType;

    /** 创建人 */
    @Excel(name = "创建人")
    @ApiModelProperty(name = "createdBy",value = "创建人",dataType = "String")
    private String createdBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(name = "createdTime", value = "创建时间", dataType = "Date", notes = "yyyy-MM-dd")
    @TableField(fill = FieldFill.INSERT)
    private Date createdTime;

    /** 更新人 */
    @Excel(name = "更新人")
    @ApiModelProperty(name = "updatedBy",value = "更新人",dataType = "String")
    private String updatedBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(name = "updatedTime",value = "更新时间",dataType = "Date",notes = "yyyy-MM-dd")
    private Date updatedTime;

    /** 商品分类 */
    @Excel(name = "商品分类")
    @ApiModelProperty(name = "type",value = "商品分类",dataType = "String")
    private String type;

    /** 直接购买金额 */
    @Excel(name = "直接购买金额")
    @ApiModelProperty(name = "directMoney",value = "直接购买金额",dataType = "BigDecimal")
    private BigDecimal directMoney;

    /** 原价 */
    @Excel(name = "原价")
    @ApiModelProperty(name = "originalCost",value = "原价",dataType = "BigDecimal")
    private BigDecimal originalCost;

    /** 邮费 */
    @Excel(name = "邮费")
    @ApiModelProperty(name = "postage",value = "邮费",dataType = "BigDecimal")
    private BigDecimal postage;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setCommodityName(String commodityName) 
    {
        this.commodityName = commodityName;
    }

    public String getCommodityName() 
    {
        return commodityName;
    }
    public void setPoster(String poster) 
    {
        this.poster = poster;
    }

    public String getPoster() 
    {
        return poster;
    }
    public void setIntegral(Long integral) 
    {
        this.integral = integral;
    }

    public Long getIntegral() 
    {
        return integral;
    }

    public void setDetails(String details) 
    {
        this.details = details;
    }

    public String getDetails() 
    {
        return details;
    }

    public String getExchangeType() {
        return exchangeType;
    }

    public void setExchangeType(String exchangeType) {
        this.exchangeType = exchangeType;
    }

    public void setCreatedBy(String createdBy)
    {
        this.createdBy = createdBy;
    }

    public String getCreatedBy() 
    {
        return createdBy;
    }
    public void setCreatedTime(Date createdTime) 
    {
        this.createdTime = createdTime;
    }

    public Date getCreatedTime() 
    {
        return createdTime;
    }
    public void setUpdatedBy(String updatedBy) 
    {
        this.updatedBy = updatedBy;
    }

    public String getUpdatedBy() 
    {
        return updatedBy;
    }
    public void setUpdatedTime(Date updatedTime) 
    {
        this.updatedTime = updatedTime;
    }

    public Date getUpdatedTime() 
    {
        return updatedTime;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public BigDecimal getIntegralMoney() {
        return integralMoney;
    }

    public void setIntegralMoney(BigDecimal integralMoney) {
        this.integralMoney = integralMoney;
    }

    public BigDecimal getDirectMoney() {
        return directMoney;
    }

    public void setDirectMoney(BigDecimal directMoney) {
        this.directMoney = directMoney;
    }

    public BigDecimal getOriginalCost() {
        return originalCost;
    }

    public void setOriginalCost(BigDecimal originalCost) {
        this.originalCost = originalCost;
    }

    public BigDecimal getPostage() {
        return postage;
    }

    public void setPostage(BigDecimal postage) {
        this.postage = postage;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("commodityName", getCommodityName())
            .append("poster", getPoster())
            .append("integral", getIntegral())
            .append("integralMoney", getIntegralMoney())
            .append("remark", getRemark())
            .append("details", getDetails())
            .append("exchangeType", getExchangeType())
            .append("createdBy", getCreatedBy())
            .append("createdTime", getCreatedTime())
            .append("updatedBy", getUpdatedBy())
            .append("updatedTime", getUpdatedTime())
            .append("type", getType())
            .append("directMoney", getDirectMoney())
            .append("originalCost", getOriginalCost())
            .toString();
    }
}
